Technical Field
The present invention relates to NAT (Network Address Translation), and in particular, to methods for NAT (Network Address Translation) traversal and systems using the same.
Description of the Related Art
NAT (Network Address Transition) traversal (also known as Hole Punching) is a computer networking methodology used to establish a connection between two devices which are unware of each other because of the NAT. To implement the NAT traversal, the system usually needs an intermediate server, such as a STUN (Session Traversal Utilities for NAT) server or an ICE (Interactive Connectivity Establishment) server, to exchange the external address of devices which are behind the NAT. The workflow of the intermediate server is simple: It records the external address of the client when a connection is established between them. Once another client (client B, for example) wants to establish a connection to client A, which is behind the NAT, client B will issue a punch request to the intermediate server. Then, the intermediate server will help exchange the external address of client A and client B so that they can start processing the NAT traversal. This NAT traversal methodology is affected by the NAT mechanisms which may lead to the following drawbacks: First, to keep the connection record between the client and the intermediate server alive in the NAT session table, the client has to periodically send packets to the intermediate server, and thus puts a heavy loading on the server. Second, the intermediate server cluster cannot be scaled in or scaled out arbitrarily because this would make information exchange difficult. Thus, it is desirable to have methods for NAT (Network Address Translation) traversal and systems using the same to address the aforementioned drawbacks.